package com.cmc.cloud.cmclink.doc.convert;

import com.cmc.cloud.cmclink.doc.entity.SpecialCargoCntrDO;
import com.cmc.cloud.cmclink.doc.vo.specialcargocntrvo.SpecialCargoCntrBaseVO;
import com.cmc.cloud.cmclink.doc.vo.specialcargocntrvo.SpecialCargoCntrRespVO;
import com.cmc.cloud.cmclink.doc.vo.specialcargocntrvo.SpecialCargoCntrUpdateReqVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 特种货审批的箱型信息 Convert
 *
 * @author 集运管理员
 */
@Mapper
public interface SpecialCargoCntrConvert {

    SpecialCargoCntrConvert INSTANCE = Mappers.getMapper(SpecialCargoCntrConvert.class);

    /**
     * 属性转换 convert
     *
     * @param bean
     * @return SpecialCargoCntrDO
     */
    SpecialCargoCntrDO convert(SpecialCargoCntrBaseVO bean);

    /**
     * 属性转换 convert
     *
     * @param bean
     * @return SpecialCargoCntrDO
     */
    SpecialCargoCntrDO convert(SpecialCargoCntrUpdateReqVO bean);

    /**
     * 将API请求VO转换为DO
     *
     * @param bean
     * @return SpecialCargoCntrDO
     */
    SpecialCargoCntrDO convertApi(com.cmc.cloud.cmclink.doc.api.document.req.so.SpecialCargoCntrBaseVO bean);

    /**
     * 属性转换 convert
     *
     * @param bean
     * @return SpecialCargoCntrRespVO
     */
    SpecialCargoCntrRespVO convert(SpecialCargoCntrDO bean);

    /**
     * 将DO转换为查询响应VO
     *
     * @param bean
     * @return
     */
    SpecialCargoCntrBaseVO convertDoToBase(SpecialCargoCntrDO bean);

    /**
     * 属性转换 convert
     *
     * @param list
     * @return List<SpecialCargoCntrRespVO>
     */
    List<SpecialCargoCntrRespVO> convertList(List<SpecialCargoCntrDO> list);

    /**
     * 属性转换
     *
     * @param specialCargoCntrDo
     * @return
     */
    com.cmc.cloud.cmclink.doc.api.document.req.so.SpecialCargoCntrBaseVO convertSpecialCargoCntrBaseVo(SpecialCargoCntrDO specialCargoCntrDo);
    /**
     * 属性转换
     *
     * @param list
     * @return
     */
    List<com.cmc.cloud.cmclink.doc.api.document.req.so.SpecialCargoCntrBaseVO> convertSpecialCargoCntrBaseVos(List<SpecialCargoCntrDO> list);

}
